class IPersistentObject{
public:
    virtual void Delete() = 0;
    virtual bool Load(const char* pFileName)=0;
    virtual void Sava(const char* pFileName)=0;

    //modified version added dynamic_cast to prevent the compiler-denpendent
    virtual void *Dynamic_Cast(const char* type) = 0;
};
